5 PRINTCHR$(147) 10 PRINT"****************************************" 12 PRINT"* *" 14 PRINT"* CANYONS OF ZELAZ *" 16 PRINT"* COPYRIGHT 1983 *" 18 PRINT"* WIZARDWORKS SOFTWARE *" 20 PRINT"* *" 22 PRINT"* WRITTEN BY GARY D MCCLELLAN *" 24 PRINT"* P.O. BOX 1750 *" 26 PRINT"* FLAGSTAFF, AZ 86002 *" 28 PRINT"* *" 30 PRINT"****************************************" 60 OF=54272:GOSUB500:GOSUB900:TI$="000000":FF=16:Y=71:POKEV+1,Y:GOSUB400 97 REM********************************** 98 REM* MAIN PROGRAM LOOP * 99 REM********************************** 100 CS=0:CP=0:POKEV+31,0:J=PEEK(56320) 105 IF(JAND16)OR(FU<1)THENC1=-9:POKEAD,O:POKEWA,0:GOTO150 107 POKE54296,15:POKEAD,88:POKESR,240:POKEWA,129:FU=FU-3.5:C1=5.5:POKE2040,14 110 IFNOTJAND8THENX1=X1+.25:FU=FU-.5 112 IFNOTJAND4THENX1=X1-.25:FU=FU-.5 113 IFNOTJAND1THENFU=FU+1.75:C1=32 150 POKE55296,2:POKE55326,2:C2=64/C1:V2=V1-.4+.2*C2:A2=A2+.1*(V1+V2):V1=V2 155 CP=PEEK(V+31)AND1:IFCP=0THENCR=0 176 Y=(222-INT(A2/D)):X=X+X1:IFY<55THENX1=X1*2 177 IFX<1ORX>254ORY<45THENGOSUB300 178 POKE53279,0:POKEV,X:POKEV+1,Y:IFPEEK(53279)AND1THENCR=CR+1:IFCR>1THENCS=1 180 PRINTH$P$P$P$CHR$(17)TAB(32)TI$:PRINTP$TAB(33)STR$(INT(FU))+" " 185 PRINTP$TAB(33)STR$(INT(A2))+" ":PRINTP$TAB(32)"V:"STR$(INT(V2))+" " 186 HV$=STR$(X1*3)+" ":PRINTTAB(32)"H:"LEFT$(HV$,5) 190 FF=PEEK(V+30)AND30:IFFFTHENGOSUB400 195 IF(Y>222ANDV2<-10)ORCSTHENGOSUB300 200 POKE55296,7:POKE55326,7:POKE2040,15:GOTO100 297 REM ******************************** 298 REM * MISSION REPORT ROUTINE * 299 REM ******************************** 300 POKENH,2:POKENL,179:POKE54296,15:POKEAD,88:POKESR,240:POKEWA,129:CK=1 304 POKE2040,11:POKEV+28,1 305 GOSUB380:POKEV+29,31:GOSUB380:POKEV+23,1:GOSUB380:GOSUB390 310 POKEAD,00:POKESR,00:POKEWA,00 315 GOSUB392:PRINTH$P$:PRINTTAB(32)"CRASHED" 317 POKEV+29,30:POKEV+23,0:POKEV+21,30:POKEV+28,0:GOTO370 350 GOSUB392:PRINTH$P$:PRINTTAB(32)"ABORTED":GOTO370 360 GOSUB392:FC=FC-3:IFFC>4THENFC=4 362 PRINTH$P$:PRINTTAB(32)" " 363 PRINTH$P$:PRINTTAB(32)MR$(FC);TAB(73)"FLIGHT":FORJ=1TO4000:NEXTJ:GOTO370: 370 J=PEEK(56320):IFJAND16THEN370 371 IFNOTJAND2THENPOKEV+21,0:CLR:PRINTCHR$(147):END 375 GOSUB395:GOSUB900:GOSUB584:FF=PEEK(V+30):FF=0:TI$="000000":RETURN 380 FORJ=1TO25:Z=INT(60*RND(1))+1:POKE705+Z,J:NEXT:RETURN 390 FORJ=704TO766:POKEJ,00:NEXT:RETURN 392 PRINTH$:PRINTTAB(32)R$"MISSION"TAB(72)R$"REPORT:":RETURN 395 PRINTH$P$:PRINTTAB(32)" "TAB(72)" ":RETURN 396 REM********************************* 397 REM* LANDER SPRITE/PAD SPRITE * 398 REM* COLLISION HANDLER ROUTINE * 399 REM********************************* 400 IFV2<-10ORABS(X1)>1.5 THENGOTO300 403 IFFF=16ANDX<210THENGOTO300 405 PRINTH$P$:PRINTTAB(32)"LANDED ":POKE2040,15:POKEAD,0:POKEWA,0 410 IFFF=16THENGOSUB495:IFQ=1THEN360 415 IFFF=16THENFU=FU+200 435 Y=Y-1:POKEV+1,Y 440 IFCKTHENPRINTH$P$:PRINTTAB(32)"STANDBY":CK=0 450 FORJ=1TO4:IFFF=2^JTHENIFPEEK(V+39+J)AND5THENFU=FU+300:POKEV+39+J,2:FC=FC+1 455 POKE(V+43),5 460 NEXTJ:FORI=1TO1500:NEXT:PRINTH$P$P$:PRINTTAB(34)FC 465 PRINTH$P$P$P$;CHR$(17)TAB(32)TI$P$:PRINTTAB(33)STR$(INT(FU))+" " 470 PRINTP$TAB(33)STR$(INT(A2))+" ":PRINTP$TAB(32)"V:"STR$(INT(V2))+" " 471 HV$=STR$(X1*3)+" ":PRINTTAB(32)"H:"LEFT$(HV$,5) 475 IFNOTPEEK(56320)AND2THEN350 480 IFPEEK(56320)AND16THEN465 485 V1=5 :C1=2:X1=0:FF=PEEK(V+30):FF=0:A2=A2+4 490 PRINTH$P$:PRINTTAB(32)"ACTIVE!":RETURN 495 IF(NOTPEEK(V+40)AND5)AND(NOTPEEK(V+41)AND5)AND(NOTPEEK(V+42)AND5)THENQ=1 496 RETURN 497 REM********************************* 498 REM* SET UP SPRITE DATA AND SCREEN * 499 REM********************************* 500 FORI=13TO15:FORJ=0TO62:READA:POKE(I*64)+J,A:NEXTJ:NEXTI 504 DIMMR$(4):MR$(1)="GREAT":MR$(2)="GOOD":MR$(3)="FAIR":MR$(4)="POOR" 506 PRINTCHR$(147):POKE53281,11:POKE53280,12:FORJ=55296TO56295:POKEJ,1:NEXTJ 508 FORJ=1055TO2023STEP40:POKEJ,160:POKEJ+OF,4 :POKEJ+8,160:POKEJ+8+OF,4 :NEXTJ 510 FORJ=1055TO1062:POKEJ,160:POKEJ+OF,4 :POKEJ+960,160:POKEJ+960+OF,4 :NEXTJ 512 FORJ=1249TO1252:POKEJ,160:NEXT:FORJ=1289TO1292:POKEJ,160:NEXT:POKE1288,95 515 FORJ=1064TO1984STEP40:POKEJ,160:POKEJ+30,160:NEXT 516 POKE1105,223:POKE1145,105:POKE1225,223:FORJ=1265TO1425STEP40:POKEJ,160:NEXT 517 POKE1024,81:POKE1024+OF,2:POKE1054,81:POKE1054+OF,2 518 POKE1105,223:POKE1145,105:POKE1225,223:FORJ=1265TO1425STEP40:POKEJ,160:NEXT 520 POKE1465,105:POKE1745,223:POKE1785,160:POKE1825,105:POKE1905,223 522 POKE1945,160:POKE1946,223 524 FORJ=1984TO2013:POKEJ,160:NEXT 526 POKE1093,233:FORJ=1133TO1293STEP40:POKEJ,160:NEXT:POKE1333,95:POKE1413,233 530 FORJ=1453TO1893STEP40:POKEJ,160:NEXT:POKE1933,95:POKE1973,233 532 POKE1172,233 535 POKE1352,223:POKE1353,233:POKE1391,233:POKE1394,105 536 FORJ=1392TO1552STEP40:POKEJ,160:NEXT:FORJ=1393TO1953STEP40:POKEJ,160:NEXT 538 POKE1431,95:POKE1592,95:POKE1672,95 539 POKE1752,233:POKE1792,160:POKE1832,160:POKE1872,95:POKE1791,233:POKE1831,95 542 POKE1471,233:POKE1511,160:POKE1551,95:POKE1510,233 545 POKE1434,223:POKE1474,160:POKE1514,105:POKE1554,223:POKE1594,160 547 POKE1595,223:FORJ=1634TO1954STEP40:POKEJ,160:POKEJ+1,160:NEXT 549 POKE1716,233:POKE1717,223:POKE1757,105:POKE1797,223:POKE1837,105 550 POKE1876,105:POKE1916,223:POKE1956,105:FORJ=1756TO1836STEP40:POKEJ,160:NEXT 552 REM RIGHT PINNACLE 554 POKE1442,223:POKE1443,223:POKE1444,233:POKE1445,223:POKE1485,105 556 POKE1481,95:FORX=1482TO1602STEP40:POKEX,160:NEXT 558 FORJ=1483TO1963STEP40:POKEJ,160:POKEJ+1,160:NEXT 560 FORJ=1525TO1965STEP40:POKEJ,160:NEXT:FORJ=1526TO1606STEP40:POKEJ,160:NEXT 565 FORJ=1766TO1966STEP40:POKEJ,160:NEXT:POKE1646,105:POKE1726,223 567 POKE1486,233:POKE1567,105:POKE1807,223 570 POKE1967,233:POKE1968,233:POKE1451,95:POKE1452,160:POKE1651,233:POKE1691,95 573 POKE1492,233:FORJ=1492TO1812STEP40:POKEJ,160:NEXT:POKE1852,95 575 POKE1521,233:POKE1561,95:POKE1642,95:POKE1723,95:POKE1763,32:POKE1803,233 577 POKE1842,233:POKE1882,95:POKE1922,233 584 P$=CHR$(17)+CHR$(17)+CHR$(17):H$=CHR$(19):R$=CHR$(18) 585 PRINTH$;CHR$(5 ):PRINTTAB(32)R$"MISSION"TAB(72)R$"STATUS:" 587 PRINTH$P$P$;CHR$(17):PRINTTAB(32)R$" TIME: ":PRINTP$TAB(32)R$" FUEL: "P$ 591 PRINTTAB(32)R$" ALT: "P$:PRINTTAB(32)R$" VEL: " 596 PRINTH$P$P$TAB(32)R$"REFUELS" 597 RETURN 896 REM********************************* 897 REM* DEFINE AND ENABLE SPRITES * 898 REM* 1 THRU 5 AND GAME VARIABLES * 899 REM********************************* 900 V=53248:X=219:Y=70:D=3:CR=0:POKEV+31,0:FU=0:A2=456:V1=0:X1=0 910 POKEV+21,31:POKE2040,15:POKEV,X:POKEV+1,Y:POKEV+27,1:CK=1:Q=0:V2=0 916 POKE2041,13:POKE2042,13:POKE2043,13:POKE2044,13 918 POKEV+2,48:POKEV+3,242:POKEV+4,124:POKEV+5,242:POKEV+6,215:POKEV+7,242 919 POKEV+8,210:POKEV+9,90 920 POKEV+39,15:POKEV+40,5:POKEV+41,5:POKEV+42,5:POKEV+43,2 922 POKEV+29,30:POKEV+37,7:POKEV+38,2 930 FORJ=54272TO54296:POKEJ,0:NEXT:WA=54276:AD=54277:SR=54278:NL=54272:NH=54273 940 POKENL,216:POKENH,12:FC=0 950 RETURN 996 REM********************************* 997 REM* DATA FOR SPRITE DATA BLOCK * 998 REM* 13, 14, AND 15 * 999 REM********************************* 1000 DATA255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 1002 DATA255,255,255,255,255,255,255 1003 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1004 DATA0,0,0,0,0,0,32,254,24,35,255,160,31,255,216,15,255,192,31,255,192 1006 DATA63,255,248,127,255,252,127,255,252,127,255,248,63,255,240,15,255,240 1008 DATA19,255,152,38,56,68,120,124,62,64,254,2,64,210,2,64,169,2 1010 DATA65,85,2,194,51,131,0,0,0 1012 DATA0,0,0,32,254,24,35,255,160,31,255,216,15,255,192,31,255,192 1014 DATA63,255,248,127,255,252,127,255,252,127,255,248,63,255,240,15,255,240 1016 DATA19,255,152,38,56,68,120,124,62,64,254,2,64,0,2,64,0,2 1018 DATA64,0,2,192,0,3,0,0,0